
Nombre:
Just Another Commander
Versión:
2.01
Editor:
Klappert
Víctima:
JAC.EXE
Herramientas:
W32Dasm
HIEW
Cerebro
Cracker:
LW2000
Tutorial:
número 49
Renuncia: Este tutorial tiene una finalidad únicamente
educativa. No asumo ninguna responsabilidad por el mal uso de éste material.
1.
Bien, vamos a hacer un crack rápido con
‘Just Another Commander’. Arrancamos nuestro ‘engendro’ y vermos una pantalla
NAG: anotamos el texto. Cargamos el programa en W32Dasm y hacemos un ‘dead
list’.
2.
Vamos a nuestra cadena:
* Referenced by a (U)nconditional or
(C)onditional Jump at Address:
|:00523877(U)
|
:00523887 803D14E753001E cmp byte ptr [0053E714], 1E
:0052388E 7621 jbe 005238B1 >’Bad Boy’
:00523890 6A00 push 00000000
:00523892 668B0D103D5200 mov cx, word ptr [00523D10]
:00523899 33D2 xor edx, edx
Possible StringData from Code Obj ->"Sie
haben JAC bereits an 30
Tagen getestet.
Wenn Sie das Programm weiter nutzen m"
|
:0052389B B8A03D5200 mov eax, 00523DA0
:005238A0 E87B36F6FF call 00486F20
:005238A5 C60500E7530000 mov byte ptr [0053E700], 00
:005238AC E9A1000000 jmp 00523952
3.
¡Hmmm! ¡Bastante sencillo! Lo que queremos
es que el programa se cargue siempre, incluso si se ha traspasado el período
de evaluación. Por lo tanto, ¡el salto tiene que ejecutarse siempre!
4.
Haremos esto cambiando la instrucción
‘JBE’ a ‘JMP’. (No voy a decirle ahora cómo hacer esto; ya lo debería saber.
Si no es así, lea mis anteriores tutoriales).
5.
¡Bien, parece funcionar estupendamente!
Pero la pantalla Nag y la pantalla Splash continúan ahí … Vamos a la pantalla
principal y echamos un vistazo a la barra de títulos ‘Just Another Commander
- UNREGISTRIERTE SHAREWAREVERSION’.
6.
Hacemos un ‘dead list’ y buscamos la
cadena ‘Just Another Commander’:
:00523A65 FF5250 call [edx+50]
* Possible StringData Ref from Code Obj ->"Just Another Commander"
|
:00523A68 BA403C5200 mov edx, 00523C40 >Anotamos el offset
:00523A6D A130765200 mov eax, dword ptr [00527630]
:00523A72 E80554F0FF call 00428E7C
:00523A77 B9C0E55300 mov ecx, 0053E5C0
:00523A7C BAD8644E00 mov edx, 004E64D8
7.
Anotamos el offset de la posición ‘00523A68’
ya que tenemos que saltar aquí si queremos ir a la pantalla principal. Pero,
¿desde aquí saltamos a la pantalla principal? ¡Hmmm! ¿Recuerda la comprobación
de la fecha? Bien, vamos a ‘0052388E’, otra vez. Tenemos que cambiar el ‘JBE
005238B1’ (o bien ‘JMP 005238B1 si ya está cambiado) a ‘JMP 00122E58’ (el
nuevo offset que hemos anotado).
8.
¡Vamos a hacerlo así! Abrimos ‘JAC.EXE’
en HIEW y entramos en el modo ‘DeCode’. Pulsamos F5 y vamos al offset ‘122C8E’.
Pulsamos F3 y F2 para introducir comandos:
jmp 00122E68 [Intro]
[Esc]
9.
Guardamos nuestro trabajo. A propósito:
si obtenemos un mensaje debido al cambio de fecha, anotamos el mensaje y vamos
a la ‘String Data Reference’ correspondiente:
:005237A6 DFE0 fstsw ax
:005237A8 9E sahf
:005237A9 7331 jnb 005237DC >¡Bad Boy!
:005237AB DD0504E75300 fld qword ptr [0053E704]
:005237B1 83C4F4 add esp, FFFFFFF4
:005237B4 DB3C24 fstp tbyte ptr [esp]
:005237B7 9B wait
:005237B8 8D45F0 lea eax, dword ptr [ebp-10]
:005237BB E80843EEFF call 00407AC8
:005237C0 8B55F0 mov edx, dword ptr [ebp-10]
:005237C3 8D45DC lea eax, dword ptr [ebp-24]
:005237C6 E8DD0CEEFF call 004044A8
:005237CB 8D4DDC lea ecx, dword ptr [ebp-24]
:005237CE 33D2 xor edx, edx
:005237D0 A1F4E65300 mov eax, dword ptr [0053E6F4]
:005237D5 E83A74F2FF call 0044AC14
:005237DA EB1C jmp 005237F8
* Referenced by a (U)nconditional or
(C)onditional Jump at Address:
|:005237A9(C) >Vamos aquí
|
:005237DC 6A00 push 00000000
:005237DE 668B0D103D5200 mov cx, word ptr [00523D10]
:005237E5 B203 mov dl, 03
Possible StringData Ref from Code Obj->"Sie
haben doch wohl
->nicht an der"
->"Datumseinstellung
->rumgespielt"
->"um die Shareware-
->Kontrolle zu"
->"umgehen??"
|
:005237E7 B81C3D5200 mov eax, 00523D1C
10.
Ahora anotamos el offset de la dirección ‘005237A9’ y vamos al mismo
en HIEW. Cambiamos el ‘7331’ a ‘9090’ y ya nunca volveremos a saber del mensaje.
Si no le gusta la cadena ‘UNREGISTRIERTE SHAREWAREVERSION’,
la buscamos en el ‘.EXE’ con HIEW. Buscamos la cadena (en hexadecimal):
554E5245474953545249455254452053484152455741524556455253494F4E
y la sustituimos con:
52656769737472696572742066FC72204C5732303030205B4369415D2020
o lo que usted quiera (pero recuerde que deben tener
la misma longitud).
Ahora, ¡pruébelo!
¡Enhorabuena! ¡Ya es usted un usuario registrado!
¡Se acabó! Fácil, ¿no? ¿Algún comentario? Envíeme
un email a LW2000@gmx.net.
o vaya a http://www.LW2000.cjb.net
Gracias a tKC por sus tutoriales. Empecé leyendo su
primer tutorial y todavía sigo leyéndolos.
Traducción de: MeGaBiTe